package com.project.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.common.api.BusinessApi;
import com.common.core.domain.AjaxResult;
import com.project.domain.bo.BizBuyerContractBo;
import com.project.domain.entity.BizBuyerContract;
import com.project.domain.entity.SyntProject;

import java.util.HashMap;
import java.util.List;


public interface IBuyerContractService extends IService<BizBuyerContract>, BusinessApi {


    /**
     * 查询出账合同
     *
     * @param id 出账合同主键
     * @return 出账合同
     */
    public BizBuyerContract selectBizBuyerContractByID(String id);

    /**
     * 查询出账合同列表
     *
     * @param bizBuyerContract 出账合同
     * @return 出账合同集合
     */
    public List<BizBuyerContract> selectBizBuyerContractList(BizBuyerContractBo bizBuyerContract);

    /**
     * 数量统计
     * @param bizBuyerContract
     * @return
     */
    public List<HashMap<String, Integer>> listStatistics(BizBuyerContractBo bizBuyerContract);

    /**
     * 查询出账合同列表 - 联表查询
     * @param bizBuyerContract
     * @return
     */
    public List<BizBuyerContract> selectBizBuyerContractListConnectedTable(BizBuyerContractBo bizBuyerContract);

    /**
     * 新增出账合同
     *
     * @param bizBuyerContract 出账合同
     * @return 结果
     */
    public AjaxResult insertBizBuyerContract(BizBuyerContract bizBuyerContract);

    /**
     * 修改出账合同
     *
     * @param bizBuyerContract 出账合同
     * @return 结果
     */
    public AjaxResult updateBizBuyerContract(BizBuyerContract bizBuyerContract);

    /**
     * 批量删除出账合同
     *
     * @param ids 需要删除的出账合同主键集合
     * @return 结果
     */
    public Boolean deleteBizBuyerContractByIds(String[] ids);

    /**
     * 删除出账合同信息
     *
     * @param id 出账合同主键
     * @return 结果
     */
    public Boolean deleteBizBuyerContractById(String id);

    /**
     * 根据项目名,4个字段模糊查询横向和纵向项目
     */
    public  List<BizBuyerContract> getHxZxXmByName(String projectName);

    /**
     * 获取合同编号
     * @param
     * @return
     */
    public String getContractCode();

}
